package cn.javase.base.reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;

public class _09_获取成员方法的修饰符_形参_返回值和异常 {
    public static void main(String[] args) throws NoSuchMethodException {
        Class<Student> studentClass = Student.class;
        Method sayHello = studentClass.getDeclaredMethod("sayHello", String.class);
        System.out.println(Modifier.toString(sayHello.getModifiers())); // 修饰符
        System.out.println("=============================================");
        Class<?>[] parameterTypes = sayHello.getParameterTypes();
        for (Class<?> parameterType : parameterTypes) {
            System.out.println(parameterType); // 形参类型
        }
        System.out.println("=============================================");
        Parameter[] parameters = sayHello.getParameters();
        for (Parameter parameter : parameters) {
            System.out.println(parameter); // 形参
        }
        System.out.println("=============================================");
        Class<?> returnType = sayHello.getReturnType();
        System.out.println(returnType); // 返回值类型
        System.out.println("=============================================");
        Class<?>[] exceptionTypes = sayHello.getExceptionTypes();
        for (Class<?> exceptionType : exceptionTypes) {
            System.out.println(exceptionType);
        } // 异常
    }
}
